import java.util.Arrays;
import java.util.Scanner;
//希望输出这样的效果：[1， 2， 3， 4， 5]
//public class test2 {
//    public static String func(int[] arr) {
//        String ret="[";
//for(int i=0; i<arr.length;i++)
//{
//    ret+=arr[i];
//    if(i!=arr.length-1) {
//        ret += ", ";
//    }
//}
//ret+="]";
//        return ret;
//    }
//    public static void main(String[] args) {
//        int[] arr={1,2,3,4,5};
//        System.out.println( func(arr));
//    }
//}

//实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}
//创建了一个变量
//
//public class test2 {
//    public static int[] Transform(int[] arrary)
//    {
//        int[] tem=new int[arrary.length];
//        for(int i=0;i<arrary.length;i++){
//            tem[i]=arrary[i]*2;
//        }
//        return tem;
//    }
//    public static void main(String[] args) {
//        int[] array = {1, 2, 3};
//        Transform(array);
//        System.out.println(Arrays.toString(Transform(array)));
//    }
//}

//不创建变量
//public class test2 {
//    public static void Transform(int[]arrary)
//    {
//        for(int i=0;i<arrary.length;i++){
//            arrary[i]=arrary[i]*2;
//        }
//    }
//    public static void main(String[] args) {
//        int[]arrary={1,2,3};
//        Transform(arrary);
//        System.out.println(Arrays.toString(arrary));
//    }
//}


//调整数组顺序使得奇数位于偶数之前。调整之后，不关心大小顺序。
//
//如数组：[1,2,3,4,5,6]
//
//调整后可能是：[1, 5, 3, 4, 2, 6]

//public class test2 {
//    public static void Change_num(int[]arr)
//    {
//       int left=0;
//       int right=arr.length-1;
//       while(left<right)
//       {
//           while(arr[left]%2!=0&&left<right)
//           {
//               left++;
//           }
//           while (arr[right]%2==0&&left<right)right--;
//           if(left<right)
//           {
//               int tem=arr[left];
//               arr[left]=arr[right];
//               arr[right]=tem;
//           }
//       }
//    }
//    public static void main(String[] args) {
//        int[]arr={1,2,3,4,5,6};
//        Change_num(arr);
//        System.out.println(Arrays.toString(arr));
//    }
//}

//给定一个有序整型数组, 实现二分查找(必须是有序的数组)
//public class test2 {
//    public static int Find_num(int[]arr,int key){
//        int left=0;
//        int right=arr.length-1;
//        for(int i=0;i<arr.length;i++)
//        {
//            int min=(left+right)/2;
//            if(arr[min]==key)
//                return min;
//            else if(arr[min]>key)
//            {
//                right=min-1;
//            }
//            else
//            {
//                left=min+1;
//            }
//        }
//        return -1;
//    }
//    public static void main(String[] args) {
//        int[]arr={1,2,3,4,5,6,7,8};
//        int ret=Find_num(arr,5);
//        if(ret!=0)
//        {
//            System.out.println("找到了下标是："+ret);
//        }
//        else
//        {
//            System.out.println("没有找到");
//        }
//    }
//}

//给定一个整型数组, 实现冒泡排序(升序排序)
//public class test2 {
//    public static void bubblen_num(int[]arr)
//    {
//        for(int i=0;i<arr.length-1;i++)
//        {
//            for(int j=0;j<arr.length-1-i;j++)
//            {
//                if(arr[j]>arr[j+1])
//                {
//                    int tem=arr[j];
//                    arr[j]=arr[j+1];
//                    arr[j+1]=tem;
//                }
//            }
//        }
//    }
//
//    public static void main(String[] args) {
//        int[]arr={2,3,5,1,6,7,1,10,9,8,0};
//        bubblen_num(arr);
//        System.out.println(Arrays.toString(arr));
//    }
//}

//给定一个整数数组 nums 和一个整数目标值 target，请你在该数组中找出 和为目标值 target 的那 两个 整数，并返回它们的数组下标。
//
//你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
//你可以按任意顺序返回答案。
//示例 1：
//输入：nums = [2,7,11,15], target = 9
//输出：[0,1]
//解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1] 。

//暴力查找

//public class test2 {
//    public static int[] Find_func(int[]nums,int target)
//    {
//int i=0;
//int[]ret=new int[]{-1,-1};
//for(i=0;i<nums.length;i++)
//{
//    for(int j=1;j<nums.length;j++)
//    {
//        if(nums[i]+nums[j]==target){
//            ret[0]=nums[i];
//            ret[1]=nums[j];
//        }
//    }
//}
//return ret;
//    }
//    public static void main(String[] args) {
//        int[]nums={2,7,11,15};
//        int target=9;
//        int[] ret=Find_func(nums,target);
//        System.out.println(Arrays.toString(ret));
//    }
//}


//给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
//方法一、
//public class test2 {
//    public static int Find_twice(int[]arr)
//    {
//        int result=0;
//        for(int i=0;i<32;i++)
//        {
//            int sum=0;
//            for(int j=0;j<arr.length;j++)
//            {
//               sum+=(arr[j]>>i)&1;
//            }
//            if(sum%2!=0)
//                result=result|(1<<i);
//        }
//        return result;
//    }
//    public static void main(String[] args) {
//        int[]arrary={1,3,3,1,5};
//        int ret=Find_twice(arrary);
//        System.out.println(ret);
//    }
//}

//方法二、
//类似于c语言中讲到的单身狗问题————我们可以使用异或来求解
//^————相同的为0，相异的为1；1^1=0；0^2=2；
//public class test2 {
//    public static int Find_num(int[]arr){
//        int ret=0;
//        for(int i=0;i<arr.length;i++)
//        {
//            ret=ret^arr[i];
//        }
//        return ret;
//    }
//    public static void main(String[] args) {
//        int[]arrary={1,1,2,3,2};
//        Find_num(arrary);
//        System.out.println(Find_num(arrary));
//    }
//}

//给定一个大小为n的数组，求出多数元素————类似与求出纵数
//思路：先把数组从小到大排列，然后超过n/2的算是纵数，只要求出那个数字超出n/2就可以了
public class test2 {
    public static int Chao_num(int[]arr)
    {
        Arrays.sort(arr);
        return arr[arr.length/2];
    }

    public static void main(String[] args) {
        int []arr={1,1,4,3,5,3,4,4,4,4};
        Chao_num(arr);
        System.out.println(Chao_num(arr));
    }
}